package com.example.service;

import com.example.controller.request.ConfirmOrderRequest;
import com.example.controller.request.ProductOrderPageRequest;
import com.example.enums.ProductOrderPayTypeEnum;
import com.example.model.EventMessage;
import com.example.model.ProductOrderDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.utils.JsonData;

import java.util.Map;

/**
 *  服务类
 * @author yinxin
 * @since 2022-06-13
 */
public interface ProductOrderService {

    JsonData page(ProductOrderPageRequest request);

    JsonData getOrderState(String outTradeNo);

    JsonData confirmOrder(ConfirmOrderRequest orderRequest);

    Boolean closeProductOrder(EventMessage eventMessage);

    JsonData processOrderCallbackMsg(ProductOrderPayTypeEnum wechatPay, Map<String, String> paramsMap);

    /**
     * 处理队列里面的订单相关消息
     * @param eventMessage
     */
    void handleProductOrderMessage(EventMessage eventMessage);
}
